<CodeStyleSettings>
  <CSharp>
    <FormatSettings>
      <ALIGN_MULTILINE_ARGUMENT>False</ALIGN_MULTILINE_ARGUMENT>
      <BLANK_LINES_AROUND_SINGLE_LINE_FIELD>1</BLANK_LINES_AROUND_SINGLE_LINE_FIELD>
      <BLANK_LINES_AROUND_SINGLE_LINE_INVOCABLE>1</BLANK_LINES_AROUND_SINGLE_LINE_INVOCABLE>
      <BLANK_LINES_BETWEEN_USING_GROUPS>1</BLANK_LINES_BETWEEN_USING_GROUPS>
      <FORCE_ATTRIBUTE_STYLE>SEPARATE</FORCE_ATTRIBUTE_STYLE>
      <FORCE_FOR_BRACES_STYLE>ALWAYS_ADD</FORCE_FOR_BRACES_STYLE>
      <FORCE_FOREACH_BRACES_STYLE>ALWAYS_ADD</FORCE_FOREACH_BRACES_STYLE>
      <FORCE_IFELSE_BRACES_STYLE>ALWAYS_ADD</FORCE_IFELSE_BRACES_STYLE>
      <FORCE_WHILE_BRACES_STYLE>ALWAYS_ADD</FORCE_WHILE_BRACES_STYLE>
      <INDENT_ANONYMOUS_METHOD_BLOCK>False</INDENT_ANONYMOUS_METHOD_BLOCK>
      <INDENT_EMBRACED_INITIALIZER_BLOCK>False</INDENT_EMBRACED_INITIALIZER_BLOCK>
      <INDENT_SIZE>4</INDENT_SIZE>
      <INSERT_TABS>True</INSERT_TABS>
      <KEEP_BLANK_LINES_IN_CODE>1</KEEP_BLANK_LINES_IN_CODE>
      <KEEP_BLANK_LINES_IN_DECLARATIONS>1</KEEP_BLANK_LINES_IN_DECLARATIONS>
      <KEEP_USER_LINEBREAKS>False</KEEP_USER_LINEBREAKS>
      <MODIFIERS_ORDER IsNull="False">
        <Item>public</Item>
        <Item>protected</Item>
        <Item>internal</Item>
        <Item>private</Item>
        <Item>new</Item>
        <Item>abstract</Item>
        <Item>virtual</Item>
        <Item>override</Item>
        <Item>sealed</Item>
        <Item>static</Item>
        <Item>readonly</Item>
        <Item>extern</Item>
        <Item>unsafe</Item>
        <Item>volatile</Item>
      </MODIFIERS_ORDER>
      <PLACE_CONSTRUCTOR_INITIALIZER_ON_SAME_LINE>False</PLACE_CONSTRUCTOR_INITIALIZER_ON_SAME_LINE>
      <PLACE_FIELD_ATTRIBUTE_ON_SAME_LINE>False</PLACE_FIELD_ATTRIBUTE_ON_SAME_LINE>
      <PLACE_SIMPLE_ACCESSOR_ON_SINGLE_LINE>False</PLACE_SIMPLE_ACCESSOR_ON_SINGLE_LINE>
      <PLACE_TYPE_CONSTRAINTS_ON_SAME_LINE>False</PLACE_TYPE_CONSTRAINTS_ON_SAME_LINE>
      <PLACE_WHILE_ON_NEW_LINE>True</PLACE_WHILE_ON_NEW_LINE>
      <REDUNDANT_THIS_QUALIFIER_STYLE>ALWAYS_USE</REDUNDANT_THIS_QUALIFIER_STYLE>
      <SIMPLE_EMBEDDED_STATEMENT_STYLE>ON_SINGLE_LINE</SIMPLE_EMBEDDED_STATEMENT_STYLE>
      <SPACE_AFTER_TYPECAST_PARENTHESES>False</SPACE_AFTER_TYPECAST_PARENTHESES>
      <SPACE_AROUND_MULTIPLICATIVE_OP>True</SPACE_AROUND_MULTIPLICATIVE_OP>
      <SPACE_BEFORE_SIZEOF_PARENTHESES>False</SPACE_BEFORE_SIZEOF_PARENTHESES>
      <SPACE_BEFORE_TYPEOF_PARENTHESES>False</SPACE_BEFORE_TYPEOF_PARENTHESES>
      <SPACE_WITHIN_SINGLE_LINE_ARRAY_INITIALIZER_BRACES>True</SPACE_WITHIN_SINGLE_LINE_ARRAY_INITIALIZER_BRACES>
      <STICK_COMMENT>False</STICK_COMMENT>
      <WRAP_AFTER_DECLARATION_LPAR>True</WRAP_AFTER_DECLARATION_LPAR>
      <WRAP_AFTER_INVOCATION_LPAR>True</WRAP_AFTER_INVOCATION_LPAR>
      <WRAP_ARGUMENTS_STYLE>CHOP_IF_LONG</WRAP_ARGUMENTS_STYLE>
      <WRAP_BEFORE_FIRST_TYPE_PARAMETER_CONSTRAINT>True</WRAP_BEFORE_FIRST_TYPE_PARAMETER_CONSTRAINT>
      <WRAP_EXTENDS_LIST_STYLE>CHOP_IF_LONG</WRAP_EXTENDS_LIST_STYLE>
      <WRAP_PARAMETERS_STYLE>CHOP_IF_LONG</WRAP_PARAMETERS_STYLE>
    </FormatSettings>
    <UsingsSettings>
      <AddImportsToDeepestScope>True</AddImportsToDeepestScope>
    </UsingsSettings>
    <Naming2>
      <ExceptionName IsNull="False">
      </ExceptionName>
      <OverrideDefaultSettings>True</OverrideDefaultSettings>
      <PredefinedRule Inspect="True" Prefix="" Suffix="" Style="AaBb" ElementKind="TypesAndNamespaces" />
      <PredefinedRule Inspect="True" Prefix="I" Suffix="" Style="AaBb" ElementKind="Interfaces" />
      <PredefinedRule Inspect="True" Prefix="T" Suffix="" Style="AaBb" ElementKind="TypeParameters" />
      <PredefinedRule Inspect="True" Prefix="" Suffix="" Style="AaBb" ElementKind="MethodPropertyEvent" />
      <PredefinedRule Inspect="True" Prefix="" Suffix="" Style="aaBb" ElementKind="Locals" />
      <PredefinedRule Inspect="True" Prefix="" Suffix="" Style="aaBb" ElementKind="LocalConstants" />
      <PredefinedRule Inspect="True" Prefix="" Suffix="" Style="aaBb" ElementKind="Parameters" />
      <PredefinedRule Inspect="True" Prefix="" Suffix="" Style="AaBb" ElementKind="PublicFields" />
      <PredefinedRule Inspect="True" Prefix="" Suffix="" Style="AaBb" ElementKind="Constants" />
      <PredefinedRule Inspect="True" Prefix="" Suffix="" Style="AaBb" ElementKind="StaticReadonly" />
      <PredefinedRule Inspect="True" Prefix="_" Suffix="" Style="aaBb" ElementKind="NotPublicStaticFields" />
      <PredefinedRule Inspect="True" Prefix="_" Suffix="" Style="aaBb" ElementKind="NotPublicInstanceFields" />
      <PredefinedRule Inspect="True" Prefix="" Suffix="" Style="AaBb" ElementKind="EnumMember" />
      <PredefinedRule Inspect="True" Prefix="" Suffix="" Style="AaBb" ElementKind="Other" />
    </Naming2>
    <CustomMemberReorderingPatterns><![CDATA[<?xml version="1.0" encoding="utf-8" ?>

<!--
I. Overall

I.1 Each pattern can have <Match>....</Match> element. For the given type declaration, the pattern with the match, evaluated to 'true' with the largest weight, will be used 
I.2 Each pattern consists of the sequence of <Entry>...</Entry> elements. Type member declarations are distributed between entries
I.3 If pattern has RemoveAllRegions="true" attribute, then all regions will be cleared prior to reordering. Otherwise, only auto-generated regions will be cleared
I.4 The contents of each entry is sorted by given keys (First key is primary,  next key is secondary, etc). Then the declarations are grouped and en-regioned by given property

II. Available match operands

Each operand may have Weight="..." attribute. This weight will be added to the match weight if the operand is evaluated to 'true'.
The default weight is 1

II.1 Boolean functions:
II.1.1 <And>....</And>
II.1.2 <Or>....</Or>
II.1.3 <Not>....</Not>

II.2 Operands
II.2.1 <Kind Is="..."/>. Kinds are: class, struct, interface, enum, delegate, type, constructor, destructor, property, indexer, method, operator, field, constant, event, member
II.2.2 <Name Is="..." [IgnoreCase="true/false"] />. The 'Is' attribute contains regular expression
II.2.3 <HasAttribute CLRName="..." [Inherit="true/false"] />. The 'CLRName' attribute contains regular expression
II.2.4 <Access Is="..."/>. The 'Is' values are: public, protected, internal, protected internal, private
II.2.5 <Static/>
II.2.6 <Abstract/>
II.2.7 <Virtual/>
II.2.8 <Override/>
II.2.9 <Sealed/>
II.2.10 <Readonly/>
II.2.11 <ImplementsInterface CLRName="..."/>. The 'CLRName' attribute contains regular expression
II.2.12 <HandlesEvent />
-->

<Patterns xmlns="urn:shemas-jetbrains-com:member-reordering-patterns">

  <!-- Do not reorder COM interfaces -->
  <Pattern>
    <Match>
      <And Weight="1000">
        <Kind Is="interface"/>
        <HasAttribute CLRName="System.Runtime.InteropServices.InterfaceTypeAttribute" Inherit="true"/>
      </And>
    </Match>
  </Pattern>

  <!-- Do not reorder P/Invoke structs -->
  <Pattern>
    <Match>
      <And Weight="1000">
        <Or>
          <Kind Is="struct"/>
          <Kind Is="class"/>
        </Or>
        <HasAttribute CLRName="System.Runtime.InteropServices.StructLayoutAttribute" Inherit="true"/>
      </And>
    </Match>
  </Pattern>

  <!-- Do not reorder P/Invoke classes (called xxxNativeMethods) -->
  <Pattern>
    <Match>
      <And Weight="1000">
        <Kind Is="class"/>
        <Name Is=".*NativeMethods" />
      </And>
    </Match>
  </Pattern>

  <!-- Special formatting of NUnit test fixture -->
  <Pattern RemoveAllRegions="true">
    <Match>
      <And Weight="1000">
        <Kind Is="class"/>
        <HasAttribute CLRName="NUnit.Framework.TestFixtureAttribute" Inherit="true"/>
      </And>
    </Match>

    <!-- constants -->
    <Entry>
      <Match>
        <Kind Is="constant"/>
      </Match>
      <Sort>
        <Access Order="public internal protected-internal protected private"/>
        <Name/>
      </Sort>
      <Group Region="Constants">
      </Group>
    </Entry>

    <!-- fields -->
    <Entry>
      <Match>
        <Kind Is="field" Weight="100" />
      </Match>
      <Sort>
        <Static/>
        <Readonly/>
        <Name/>
      </Sort>
      <Group Region="All fields"/>
    </Entry>

    <!-- Constructors/Finalizers. Place static one first -->
    <Entry>
      <Match>
        <Or Weight="100" >
          <Kind Is="constructor"/>
          <Kind Is="destructor"/>
        </Or>
      </Match>
      <Sort>
        <Static/>
        <Kind Order="constructor destructor" />
      </Sort>
      <Group Region="All constructors"/>
    </Entry>

    <!-- Setup/Teardown -->
    <Entry>
      <Match>
        <And>
          <Kind Is="method"/>
          <Or>
            <HasAttribute CLRName="NUnit.Framework.SetUpAttribute" Inherit="true"/>
            <HasAttribute CLRName="NUnit.Framework.TearDownAttribute" Inherit="true"/>
            <HasAttribute CLRName="NUnit.Framework.TestFixtureSetUpAttribute" Inherit="true"/>
            <HasAttribute CLRName="NUnit.Framework.TestFixtureTearDownAttribute" Inherit="true"/>
          </Or>
        </And>
      </Match>
      <Group Region="Setup/Teardown"/>
    </Entry>
    
    
    <!--Test methods-->
    <Entry>
      <Match>
        <And Weight="100">
          <Kind Is="method"/>
          <HasAttribute CLRName="NUnit.Framework.TestAttribute" Inherit="false"/>
        </And>
      </Match>
      <Sort>
        <Name/>
      </Sort>
      <Group Region="Test methods">
        <Name Region="${Name}" />
      </Group>
    </Entry>

    <!--All other members-->
    <Entry>
      <Group Region="Other methods">
        <Name Region="${Name}" />
      </Group>
    </Entry>
    
  </Pattern>

  <!-- Default file-level pattern -->
  <Pattern>

    <!-- delegates -->
    <Entry>
      <Match>
        <Kind Is="delegate"/>
      </Match>
      <Sort>
        <Access Order="public internal protected-internal protected private" />
        <Name/>
      </Sort>
      <Group Region="Delegates" />
    </Entry>
    
    <!-- enums -->
    <Entry>
      <Match>
        <Kind Is="enum"/>
      </Match>
      <Sort>
        <Access Order="public internal protected-internal protected private" />
        <Name/>
      </Sort>
      <Group Region="Enumerations" />
    </Entry>

    <!-- interfaces -->
    <Entry>
      <Match>
        <Kind Is="interface" />
      </Match>
      <Sort>
        <Access Order="public internal protected-internal protected private" />
        <Name/>
      </Sort>
      <Group Region="Interfaces" />
    </Entry>
    
    <!-- structs -->
    <Entry>
      <Match>
        <Kind Is="struct" />
      </Match>
      <Sort>
        <Access Order="public internal protected-internal protected private" />
        <Name/>
      </Sort>
      <Group Region="Structs" />
    </Entry>

    <!-- classes -->
    <Entry>
      <Match>
        <Kind Is="class" />
      </Match>
      <Sort>
        <Access Order="public internal protected-internal protected private" />
        <Name/>
      </Sort>
    </Entry>

    <!--all other members-->
    <Entry/>
    
  </Pattern>
  
  <!-- Class-level pattern -->
  <Pattern RemoveAllRegions="true">
    <Match>
      <Or Weight="500" >
        <Kind Is="class" />
        <Kind Is="struct" />
      </Or>
    </Match>
    
    <!-- constants -->
    <Entry>
      <Match>
        <Kind Is="constant" />
      </Match>
      <Sort>
        <Access Order="public internal protected-internal protected private"/>
        <Name/>
      </Sort>
    </Entry>

    <!-- fields -->
    <Entry>
      <Match>
        <Kind Is="field" />
      </Match>
      <Sort>
        <Access Order="public internal protected-internal protected private"/>
        <Static />
        <Readonly/>
        <Name/>
      </Sort>
    </Entry>

    <!-- Constructors -->
    <Entry>
      <Match>
        <Kind Is="constructor" />
      </Match>
      <Sort>
        <Static/>
        <Access Order="public internal protected-internal protected private"/>
      </Sort>
    </Entry>
    
    <!-- Finalizers -->
    <Entry>
      <Match>
        <Kind Is="destructor" />
      </Match>
      <Sort>
        <Static/>
        <Access Order="public internal protected-internal protected private"/>
      </Sort>
    </Entry>
    
    <!-- Delegates -->
    <Entry>
      <Match>
        <Kind Is="delegate" />
      </Match>
      <Sort>
        <Access Order="public internal protected-internal protected private" />
        <Name/>
      </Sort>
    </Entry>
    
    <!-- Events -->
    <Entry>
      <Match>
        <Kind Is="event" />
      </Match>
      <Sort>
        <Static/>
        <Access Order="public internal protected-internal protected private" />
        <Name/>
      </Sort>
    </Entry>

    <!-- enums -->
    <Entry>
      <Match>
        <Kind Is="enum" />
      </Match>
      <Sort>
        <Access Order="public internal protected-internal protected private" />
        <Name/>
      </Sort>
    </Entry>

    <!-- interfaces -->
    <Entry>
      <Match>
        <Kind Is="interface" />
      </Match>
      <Sort>
        <Access Order="public internal protected-internal protected private" />
        <Name/>
      </Sort>
    </Entry>
    
    <!-- Properties -->
    <Entry>
      <Match>
            <Kind Is="property" />
      </Match>
      <Sort>
        <Static />
        <Access Order="public internal protected-internal protected private" />
        <Name/>
      </Sort>
    </Entry>
    
    <!-- Indexers -->
    <Entry>
      <Match>
            <Kind Is="indexer" Weight="90"  />
      </Match>
      <Sort>
        <Static />
        <Access Order="public internal protected-internal protected private" />
        <Name/>
      </Sort>
    </Entry>
    
    <!-- ClassInitialize Methods -->
    <Entry>
      <Match>
        <And Weight="200">
          <HasAttribute CLRName="Microsoft.VisualStudio.TestTools.UnitTesting.ClassInitializeAttribute" Inherit="false"/>
          <Kind Is="method" />
        </And>
      </Match>
    </Entry>
    
    <!-- TestInitialize Methods -->
    <Entry>
      <Match>
        <And Weight="200">
          <HasAttribute CLRName="Microsoft.VisualStudio.TestTools.UnitTesting.TestInitializeAttribute" Inherit="false"/>
          <Kind Is="method" />
        </And>
      </Match>
    </Entry>
    
    <!-- Other Methods -->
    <Entry>
      <Match>
        <Kind Is="method" />
      </Match>
      <Sort>
        <Access Order="public internal protected-internal protected private" />
        <Static />
        <Name/>
      </Sort>
    </Entry>
    
    <!-- Event handlers -->
    <Entry>
      <Match>
        <HandlesEvent Weight="90" />
      </Match>
      <Sort>
        <Static />
        <Access Order="public internal protected-internal protected private" />
        <Override/>
        <Name/>
      </Sort>
    </Entry>

    <!--Nested structs -->
    <Entry>
      <Match>
        <Kind Is="struct" Weight="100" />
      </Match>
      <Sort>
        <Static />
        <Access Order="public internal protected-internal protected private" />
        <Name/>
      </Sort>
    </Entry>
    
    <!--Nested classes -->
    <Entry>
      <Match>
        <Kind Is="class" Weight="100" />
      </Match>
      <Sort>
        <Static />
        <Access Order="public internal protected-internal protected private" />
        <Name/>
      </Sort>
    </Entry>
    
    <!-- Anything else -->
    <Entry />
    
  </Pattern>

  
</Patterns>
]]></CustomMemberReorderingPatterns>
  </CSharp>
  <VB>
    <FormatSettings>
      <INDENT_SIZE>4</INDENT_SIZE>
      <INSERT_TABS>True</INSERT_TABS>
    </FormatSettings>
    <ImportsSettings />
    <Naming2>
      <ExceptionName IsNull="False">
      </ExceptionName>
    </Naming2>
  </VB>
  <GenerateMemberBody />
  <Naming2>
    <ExceptionName IsNull="False">
    </ExceptionName>
    <PredefinedRule Inspect="False" Prefix="" Suffix="" Style="aaBb" ElementKind="Locals" />
    <PredefinedRule Inspect="False" Prefix="" Suffix="" Style="AaBb" ElementKind="NotPublicInstanceFields" />
    <PredefinedRule Inspect="False" Prefix="" Suffix="" Style="AaBb" ElementKind="NotPublicStaticFields" />
    <PredefinedRule Inspect="False" Prefix="" Suffix="" Style="aaBb" ElementKind="Parameters" />
    <PredefinedRule Inspect="False" Prefix="" Suffix="" Style="AaBb" ElementKind="TypesAndNamespaces" />
    <PredefinedRule Inspect="False" Prefix="I" Suffix="" Style="AaBb" ElementKind="Interfaces" />
    <PredefinedRule Inspect="False" Prefix="T" Suffix="" Style="AaBb" ElementKind="TypeParameters" />
    <PredefinedRule Inspect="False" Prefix="" Suffix="" Style="AaBb" ElementKind="MethodPropertyEvent" />
    <PredefinedRule Inspect="False" Prefix="" Suffix="" Style="aaBb" ElementKind="LocalConstants" />
    <PredefinedRule Inspect="False" Prefix="" Suffix="" Style="AaBb" ElementKind="PublicFields" />
    <PredefinedRule Inspect="False" Prefix="" Suffix="" Style="AaBb" ElementKind="Constants" />
    <PredefinedRule Inspect="False" Prefix="" Suffix="" Style="AaBb" ElementKind="StaticReadonly" />
    <PredefinedRule Inspect="False" Prefix="" Suffix="" Style="AaBb" ElementKind="EnumMember" />
    <PredefinedRule Inspect="False" Prefix="" Suffix="" Style="AaBb" ElementKind="Other" />
  </Naming2>
</CodeStyleSettings>